package krug;

// Klassennamen sollen immer mit einem Großbuchstaben beginnen,
// Variablen- und Feldnamen immer mit einem Kleinbuchstaben!

public class Krug{
  public double volumen;
  public double inhalt;

  public Krug(double volumen, double inhalt){
    this.volumen=volumen;//volumen ist das Argument, this.volumen ist das Feld
    this.inhalt=inhalt;
  }

  public Krug(double volumen){
    //bekommt volumen und gibt es zusammen mit 0 gleich weiter an den anderen
    //Konstruktor, und zwar an den, der zwei Zahlen nimmt, da gibt's nur einen.
    this(volumen,0);
  }

  public void schuetteIn(Krug ziel){
    double m=ziel.volumen-ziel.inhalt;
    m=Math.min(inhalt,m); //es ginge auch this.inhalt
    inhalt-=m;            //hier auch
    ziel.inhalt+=m;       //hier natürlich nicht!
  }

  public String toString(){
    return "Krug V="+volumen+" I="+inhalt;
    //Beachten Sie diese Besonderheit: Zum String "V=" wird hier ohne Umwandlung
    //ein double "addiert". Das geht nur bei Strings und wurde erlaubt, weil es
    //so oft gebraucht wird und weil Verwechslungen nicht zu befürchten sind.
    //Zu Strings addierbar sind übrigens alle Datentypen. Bei Objekten wird
    //automatisch die toString()-Methode aufgerufen. Um damit ordentliche
    //Ergebnisse zu bekommen, programmiert man dies vernünftig, so wie hier.
  }
}
